home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  31.8 KB  |  1,282 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile.h"
  9. T7 M7={NULL,0,0};
  10. T675 M675={0,NULL,0,0};
  11. T441 M441=NULL;
  12. T830 M830=NULL;
  13. T479 M479={0};
  14. T309 M309={NULL,0};
  15. T467 M467={0,0};
  16. T670 M670=0;
  17. T306 M306={0};
  18. T927 M927={NULL,0,0};
  19. T52 M52={NULL,0,0,0};
  20. int r6_ix_not(int C){
  21. int R=0;
  22. /*IF*/if (C) {
  23. }
  24. else {
  25. R=1;
  26. }
  27. /*FI*/return R;
  28. }
  29. char r3to_lower(char C){
  30. char R=0;
  31. /*IF*/if ((((unsigned char)C))<(65)) {
  32. R=C;
  33. }
  34.  else if ((((unsigned char)C))>(90)) {
  35. R=C;
  36. }
  37. else {
  38. R=((char)((((unsigned char)C))+(32)));
  39. }
  40. /*FI*/return R;
  41. }
  42. int r3is_digit(char C){
  43. int R=0;
  44. {int z1=C;
  45.  
  46. if(((48<=z1)&&(z1<=57))){
  47. R=1;
  48. }
  49. }
  50. return R;
  51. }
  52. char r3to_upper(char C){
  53. char R=0;
  54. /*IF*/if ((((unsigned char)C))<(97)) {
  55. R=C;
  56. }
  57.  else if ((((unsigned char)C))>(122)) {
  58. R=C;
  59. }
  60. else {
  61. R=((char)((((unsigned char)C))-(32)));
  62. }
  63. /*FI*/return R;
  64. }
  65. int r3is_letter(char C){
  66. int R=0;
  67. {int z1=C;
  68.  
  69. if(((65<=z1)&&(z1<=90))||((97<=z1)&&(z1<=122))){
  70. R=1;
  71. }
  72. }
  73. return R;
  74. }
  75. void r400set_all_with(T400 C,T0* a1,int a2){
  76. int _i=0;
  77. _i=a2;
  78. while (!((_i)<(0))) {
  79. (C)[_i]=(a1);
  80. _i=(_i)-(1);
  81. }
  82. }
  83. int r400equal_like(T0* a1,T0* a2){
  84. int R=0;
  85. /*IF*//*AF*//*AF*/if ((a1)==((void*)(a2))) {
  86. R=1;
  87. }
  88.  else if (((a1)==((void*)(NULL)))||((a2)==((void*)(NULL)))) {
  89. }
  90. else {
  91. R=r7is_equal(((T7*)a1),a2);
  92. }
  93. /*FI*/return R;
  94. }
  95. int r400index_of(T400 C,T0* a1,int a2){
  96. int R=0;
  97. while (!(((R)>(a2))||(r400equal_like(a1,(C)[R])))) {
  98. R=(R)+(1);
  99. }
  100. return R;
  101. }
  102. int r9fast_memcmp(T9 C,T9 a1,int a2){
  103. int R=0;
  104. int _i=0;
  105. R=((C)[0])==((a1)[0]);
  106. _i=(a2)-(1);
  107. while (!(((_i)==(0))||(!(R)))) {
  108. R=((C)[_i])==((a1)[_i]);
  109. _i=(_i)-(1);
  110. }
  111. return R;
  112. }
  113. int r9fast_index_of(T9 C,char a1,int a2){
  114. int R=0;
  115. while (!(((R)>(a2))||((a1)==((C)[R])))) {
  116. R=(R)+(1);
  117. }
  118. return R;
  119. }
  120. void r9copy_from(T9 C,T9 a1,int a2){
  121. int _i=0;
  122. _i=a2;
  123. while (!((_i)<(0))) {
  124. (C)[_i]=((a1)[_i]);
  125. _i=(_i)-(1);
  126. }
  127. }
  128. T9 r9realloc(T9 C,int a1,int a2){
  129. T9 R=NULL;
  130. R=calloc(a2,sizeof(char));
  131. r9copy_from(R,C,(a1)-(1));
  132. return R;
  133. }
  134. void r7extend(T7* C,char a1){
  135. int _new_capacity=0;
  136. /*IF*/if (((((T7*)C))->_capacity/*8*/)>((((T7*)C))->_count/*4*/)) {
  137. }
  138.  else if (((((T7*)C))->_capacity/*8*/)==(0)) {
  139. C->_capacity=32;
  140. C->_storage=calloc((((T7*)C))->_capacity/*8*/,sizeof(char));
  141. }
  142. else {
  143. _new_capacity=(2)*((((T7*)C))->_capacity/*8*/);
  144. C->_storage=r9realloc((((T7*)C))->_storage/*0*/,(((T7*)C))->_capacity/*8*/,_new_capacity);
  145. C->_capacity=_new_capacity;
  146. }
  147. /*FI*/C->_count=((((T7*)C))->_count/*4*/)+(1);
  148. /*[IRF3.5put*/((((T7*)C))->_storage/*0*/)[((((T7*)C))->_count/*4*/)-(1)]=(a1);
  149. /*]*/
  150. }
  151. void r7set_last(T7* C,char a1){
  152. /*IF*/if ((((((T7*)C))->_count/*4*/)==(0))||((/*(IRF4.6item*/((((T7*)C))->_storage/*0*/)[((((T7*)C))->_count/*4*/)-(1)]/*)*/)!=(a1))) {
  153. r7extend(C,a1);
  154. }
  155. /*FI*/}
  156. void r7to_lower(T7* C){
  157. int _i=0;
  158. _i=(((T7*)C))->_count/*4*/;
  159. while (!((_i)==(0))) {
  160. /*[IRF3.5put*/((((T7*)C))->_storage/*0*/)[(_i)-(1)]=(r3to_lower(/*(IRF4.6item*/((((T7*)C))->_storage/*0*/)[(_i)-(1)]/*)*/));
  161. /*]*/
  162. _i=(_i)-(1);
  163. }
  164. }
  165. void r7remove_between(T7* C,int a1,int a2){
  166. int _i=0;
  167. _i=a2;
  168. while (!((_i)>=((((T7*)C))->_count/*4*/))) {
  169. /*[IRF3.5put*/((((T7*)C))->_storage/*0*/)[(((a1)+(_i))-(a2))-(1)]=(/*(IRF4.6item*/((((T7*)C))->_storage/*0*/)[((_i)+(1))-(1)]/*)*/);
  170. /*]*/
  171. _i=(_i)+(1);
  172. }
  173. C->_count=((((T7*)C))->_count/*4*/)-(((a2)-(a1))+(1));
  174. }
  175. void r7make(T7* C,int a1){
  176. /*IF*/if ((a1)>(0)) {
  177. /*IF*/if (((((T7*)C))->_capacity/*8*/)<(a1)) {
  178. C->_storage=calloc(a1,sizeof(char));
  179. C->_capacity=a1;
  180. }
  181. /*FI*/}
  182. /*FI*/C->_count=0;
  183. }
  184. void* r7to_external(T7* C){
  185. void* R=0;
  186. /*IF*/if (((((T7*)C))->_capacity/*8*/)>((((T7*)C))->_count/*4*/)) {
  187. C->_count=((((T7*)C))->_count/*4*/)+(1);
  188. /*IF*/if ((/*(IRF4.6item*/((((T7*)C))->_storage/*0*/)[((((T7*)C))->_count/*4*/)-(1)]/*)*/)!=('\0')) {
  189. /*[IRF3.5put*/((((T7*)C))->_storage/*0*/)[((((T7*)C))->_count/*4*/)-(1)]=('\0');
  190. /*]*/
  191. }
  192. /*FI*/}
  193. else {
  194. r7extend(C,'\0');
  195. }
  196. /*FI*/C->_count=((((T7*)C))->_count/*4*/)-(1);
  197. R=((void*)(((T7*)C))->_storage/*0*/);
  198. return R;
  199. }
  200. /*No:STRING.item*/
  201. void r7remove_first(T7* C,int a1){
  202. /*IF*/if ((a1)>(0)) {
  203. r7remove_between(C,1,a1);
  204. }
  205. /*FI*/}
  206. /*No:STRING.clear*/
  207. /*No:STRING.storage*/
  208. T0* r7twin(T7* C){
  209. T0* R=NULL;
  210. R=malloc(sizeof(*C));
  211. *((T7*)R)=M7;
  212. r7copy(((T7*)R),((T0*)C));
  213. return R;
  214. }
  215. int r7is_equal(T7* C,T0* a1){
  216. int R=0;
  217. /*IF*/if ((C)==((void*)(a1))) {
  218. R=1;
  219. }
  220.  else if (((((T7*)C))->_count/*4*/)==((((T7*)((T7*)a1)))->_count/*4*/)) {
  221. /*IF*/if (((((T7*)C))->_count/*4*/)>(0)) {
  222. R=r9fast_memcmp((((T7*)C))->_storage/*0*/,(((T7*)((T7*)a1)))->_storage/*0*/,(((T7*)C))->_count/*4*/);
  223. }
  224. else {
  225. R=1;
  226. }
  227. /*FI*/}
  228. /*FI*/return R;
  229. }
  230. char r7last(T7* C){
  231. char R=0;
  232. R=/*(IRF4.6item*/((((T7*)C))->_storage/*0*/)[((((T7*)C))->_count/*4*/)-(1)]/*)*/;
  233. return R;
  234. }
  235. /*No:STRING.capacity*/
  236. int r7has_suffix(T7* C,T0* a1){
  237. int R=0;
  238. int _i2=0;
  239. int _i1=0;
  240. /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)<=((((T7*)C))->_count/*4*/)) {
  241. _i1=(((((T7*)C))->_count/*4*/)-((((T7*)((T7*)a1)))->_count/*4*/))+(1);
  242. _i2=1;
  243. while (!((((_i1)>((((T7*)C))->_count/*4*/))||((_i2)>((((T7*)((T7*)a1)))->_count/*4*/)))||((/*(IRF4.6item*/((((T7*)C))->_storage/*0*/)[(_i1)-(1)]/*)*/)!=(/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i2)-(1)]/*)*/)))) {
  244. _i1=(_i1)+(1);
  245. _i2=(_i2)+(1);
  246. }
  247. R=(_i1)>((((T7*)C))->_count/*4*/);
  248. }
  249. /*FI*/return R;
  250. }
  251. int r7has(T7* C,char a1){
  252. int R=0;
  253. R=(r7index_of(C,a1))!=(((((T7*)C))->_count/*4*/)+(1));
  254. return R;
  255. }
  256. void r7copy(T7* C,T0* a1){
  257. C->_count=(((T7*)((T7*)a1)))->_count/*4*/;
  258. /*IF*/if (((((T7*)C))->_count/*4*/)>(0)) {
  259. /*IF*/if (((((T7*)C))->_capacity/*8*/)<((((T7*)C))->_count/*4*/)) {
  260. C->_storage=calloc((((T7*)C))->_count/*4*/,sizeof(char));
  261. C->_capacity=(((T7*)C))->_count/*4*/;
  262. }
  263. /*FI*/r9copy_from((((T7*)C))->_storage/*0*/,(((T7*)((T7*)a1)))->_storage/*0*/,((((T7*)C))->_count/*4*/)-(1));
  264. }
  265. /*FI*/}
  266. /*No:STRING.put*/
  267. /*No:STRING.count*/
  268. void r7to_upper(T7* C){
  269. int _i=0;
  270. _i=(((T7*)C))->_count/*4*/;
  271. while (!((_i)==(0))) {
  272. /*[IRF3.5put*/((((T7*)C))->_storage/*0*/)[(_i)-(1)]=(r3to_upper(/*(IRF4.6item*/((((T7*)C))->_storage/*0*/)[(_i)-(1)]/*)*/));
  273. /*]*/
  274. _i=(_i)-(1);
  275. }
  276. }
  277. void r7remove_last(T7* C,int a1){
  278. C->_count=((((T7*)C))->_count/*4*/)-(a1);
  279. }
  280. int r7index_of(T7* C,char a1){
  281. int R=0;
  282. R=(1)+(r9fast_index_of((((T7*)C))->_storage/*0*/,a1,((((T7*)C))->_count/*4*/)-(1)));
  283. return R;
  284. }
  285. void r7append(T7* C,T0* a1){
  286. int _i=0;
  287. _i=1;
  288. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  289. r7extend(C,/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/);
  290. _i=(_i)+(1);
  291. }
  292. }
  293. /*No:FIXED_ARRAY[STRING].clear_all*/
  294. /*No:FIXED_ARRAY[STRING].set_all_with*/
  295. void r927make(T927* C,int a1){
  296. /*IF*/if ((a1)==(0)) {
  297. C->_upper=-(1);
  298. }
  299.  else if (((((T927*)C))->_capacity/*4*/)==(0)) {
  300. C->_storage=calloc(a1,sizeof(T0*));
  301. C->_capacity=a1;
  302. C->_upper=(a1)-(1);
  303. }
  304.  else if (((((T927*)C))->_capacity/*4*/)<(a1)) {
  305. C->_storage=calloc(a1,sizeof(T0*));
  306. C->_capacity=a1;
  307. C->_upper=(a1)-(1);
  308. }
  309. else {
  310. C->_upper=(a1)-(1);
  311. /*[IRF3.6clear_all*/{T927* C1=C;
  312. T0* __value=NULL;
  313. /*[IRF3.6set_all_with*/{T927* C2=C1;
  314. T0* c1=__value;
  315. r400set_all_with((((T927*)C2))->_storage/*0*/,c1,(((T927*)C2))->_upper/*8*/);
  316. }/*]*/
  317. }/*]*/
  318. }
  319. /*FI*/}
  320. /*No:FIXED_ARRAY[STRING].item*/
  321. /*No:FIXED_ARRAY[STRING].storage*/
  322. /*No:FIXED_ARRAY[STRING].capacity*/
  323. /*No:FIXED_ARRAY[STRING].put*/
  324. /*No:FIXED_ARRAY[STRING].upper*/
  325. T0* r52item(T52* C,int a1){
  326. T0* R=NULL;
  327. R=((((T52*)C))->_storage/*0*/)[(a1)-((((T52*)C))->_lower/*12*/)];
  328. return R;
  329. }
  330. /*No:ARRAY[STRING].storage*/
  331. /*No:ARRAY[STRING].capacity*/
  332. /*No:ARRAY[STRING].lower*/
  333. /*No:ARRAY[STRING].upper*/
  334. int r52index_of(T52* C,T0* a1){
  335. int R=0;
  336. R=((((T52*)C))->_lower/*12*/)+(r400index_of((((T52*)C))->_storage/*0*/,a1,((((T52*)C))->_upper/*8*/)-((((T52*)C))->_lower/*12*/)));
  337. return R;
  338. }
  339. void r675connect_to(T675* C,T0* a1){
  340. C->_input_stream=fopen(r7to_external(((T7*)a1)),"r");
  341. /*IF*/if ((NULL!=(((T675*)C))->_input_stream/*8*/)) {
  342. C->_push_back_flag=0;
  343. C->_memory=((unsigned char)'\40');
  344. C->_path=a1;
  345. }
  346. /*FI*/}
  347. T0*oBC762last_string=NULL;
  348. /*No:STD_FILE_READ.push_back_flag*/
  349. /*No:STD_FILE_READ.make*/
  350. void r675disconnect(T675* C){
  351. fclose((((T675*)C))->_input_stream/*8*/);
  352. C->_path=NULL;
  353. }
  354. /*No:STD_FILE_READ.path*/
  355. void r675read_character(T675* C){
  356. /*IF*/if ((((T675*)C))->_push_back_flag/*0*/) {
  357. C->_push_back_flag=0;
  358. }
  359. else {
  360. C->_memory=getc((FILE*)((((T675*)C))->_input_stream/*8*/));
  361. }
  362. /*FI*/}
  363. /*No:STD_FILE_READ.is_connected*/
  364. /*No:STD_FILE_READ.last_character*/
  365. void r675read_line_in(T675* C,T0* a1){
  366. int _mem=0;
  367. r675read_character(C);
  368. _mem=(((T675*)C))->_memory/*12*/;
  369. while (!(((_mem)==((EOF)))||((_mem)==(((unsigned char)'\n'))))) {
  370. r7extend(((T7*)a1),((char)(_mem)));
  371. _mem=getc((FILE*)((((T675*)C))->_input_stream/*8*/));
  372. }
  373. C->_memory=_mem;
  374. }
  375. int r675end_of_input(T675* C){
  376. int R=0;
  377. /*IF*/if (!((((T675*)C))->_push_back_flag/*0*/)) {
  378. R=((((T675*)C))->_memory/*12*/)==((EOF));
  379. }
  380. /*FI*/return R;
  381. }
  382. void r675read_line(T675* C){
  383. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC762last_string)))))->_count)=(0);
  384. /*]*/
  385. r675read_line_in(C,oBC762last_string);
  386. }
  387. /*No:STD_FILE_READ.input_stream*/
  388. /*No:STD_FILE_READ.memory*/
  389. /*No:STD_ERROR.make*/
  390. /*No:STD_ERROR.flush*/
  391. void r441put_string(T441* C,T0* a1){
  392. int _i=0;
  393. _i=1;
  394. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  395. /*[IRF3.6put_character*/{T441* C1=C;
  396. char b1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  397. putc(b1,((FILE*)(stderr)));
  398. }/*]*/
  399. _i=(_i)+(1);
  400. }
  401. }
  402. /*No:STD_ERROR.put_character*/
  403. T0*oBC817tmp_file_read=NULL;
  404. /*No:STD_OUTPUT.make*/
  405. void r830append_file(T830* C,T0* a1){
  406. char _c=0;
  407. r675connect_to(((T675*)(oBC817tmp_file_read)),a1);
  408. r675read_character(((T675*)(oBC817tmp_file_read)));
  409. while (!(r675end_of_input(((T675*)(oBC817tmp_file_read))))) {
  410. _c=/*(IRF4.6last_character*/((char)((((T675*)((T675*)(oBC817tmp_file_read))))->_memory/*12*/))/*)*/;
  411. /*[IRF3.6put_character*/{T830* C1=C;
  412. char b1=_c;
  413. putc(b1,((FILE*)(stdout)));
  414. }/*]*/
  415. r675read_character(((T675*)(oBC817tmp_file_read)));
  416. }
  417. r675disconnect(((T675*)(oBC817tmp_file_read)));
  418. }
  419. /*No:STD_OUTPUT.flush*/
  420. void r830put_string(T830* C,T0* a1){
  421. int _i=0;
  422. _i=1;
  423. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  424. /*[IRF3.6put_character*/{T830* C1=C;
  425. char b1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  426. putc(b1,((FILE*)(stdout)));
  427. }/*]*/
  428. _i=(_i)+(1);
  429. }
  430. }
  431. /*No:STD_OUTPUT.put_character*/
  432. /*No:COMPILE.fz_clean*/
  433. /*No:COMPILE.dos_system*/
  434. /*No:COMPILE.fz_system_se*/
  435. /*No:COMPILE.fz_sys*/
  436. int fBC364x_suffix=0;
  437. T0*oBC364x_suffix=NULL;
  438. T0* r309x_suffix(T309* C){
  439. if (fBC364x_suffix==0){
  440. T0* R=NULL;
  441. fBC364x_suffix=1;
  442. /*IF*/if (((((T0*)ms14_364))==((void*)(r309system_name(C))))||((((T0*)ms18_364))==((void*)(r309system_name(C))))) {
  443. R=((T0*)ms29_364);
  444. }
  445.  else if ((((T0*)ms16_364))==((void*)(r309system_name(C)))) {
  446. R=((T0*)ms30_364);
  447. }
  448.  else if ((((T0*)ms19_364))==((void*)(r309system_name(C)))) {
  449. R=((T0*)ms31_364);
  450. }
  451. else {
  452. R=((T0*)ms32_364);
  453. }
  454. /*FI*/oBC364x_suffix=R;}
  455. return oBC364x_suffix;}
  456. T0*oBC364tmp_file_read=NULL;
  457. void r309more_help(T309* C,T0* a1){
  458. r306w_put_string(((T0*)ms4_364));
  459. r306w_put_string(a1);
  460. r306w_put_string(((T0*)ms5_364));
  461. r467read_character(((T467*)(oBC1std_input)));
  462. {int z1=/*(IRF4.6last_character*/((char)((((T467*)((T467*)(oBC1std_input))))->_memory/*4*/))/*)*/;
  463.  
  464. if((89==z1)||(121==z1)){
  465. r309print_help(C,a1);
  466. }
  467. }
  468. }
  469. /*No:COMPILE.unix_system*/
  470. /*No:COMPILE.fz_compile*/
  471. /*No:COMPILE.exit_failure_code*/
  472. /*No:COMPILE.vms_system*/
  473. T0* r309to_bcn(T0* a1){
  474. T0* R=NULL;
  475. char _c=0;
  476. int _i=0;
  477. R=r7twin(((T7*)a1));
  478. /*IF*/if (r7has_suffix(((T7*)R),((T0*)ms25_364))) {
  479. r7remove_last(((T7*)R),2);
  480. }
  481. /*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/;
  482. while (!((_i)==(0))) {
  483. _c=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  484. /*IF*/if (r3is_letter(_c)) {
  485. _i=(_i)-(1);
  486. }
  487.  else if ((_c)==('\137')) {
  488. _i=(_i)-(1);
  489. }
  490.  else if (r3is_digit(_c)) {
  491. _i=(_i)-(1);
  492. }
  493. else {
  494. r7remove_first(((T7*)R),_i);
  495. _i=0;
  496. }
  497. /*FI*/}
  498. r7to_upper(((T7*)R));
  499. return R;
  500. }
  501. int fBC364small_eiffel_directory=0;
  502. T0*oBC364small_eiffel_directory=NULL;
  503. T0* r309small_eiffel_directory(T309* C){
  504. if (fBC364small_eiffel_directory==0){
  505. T0* R=NULL;
  506. char _slash=0;
  507. int _i=0;
  508. fBC364small_eiffel_directory=1;
  509. R=r309get_environment_variable(C,((T0*)ms121_470));
  510. /*IF*/if ((R)==((void*)(NULL))) {
  511. R=r7twin(((T7*)(((T0*)ms121_470))));
  512. r7to_upper(((T7*)R));
  513. R=r309get_environment_variable(C,R);
  514. /*IF*/if ((R)!=((void*)(NULL))) {
  515. r7to_upper(((T7*)(((T0*)ms121_470))));
  516. }
  517. /*FI*/}
  518. /*FI*//*IF*/if ((R)==((void*)(NULL))) {
  519. R=((T0*)ms1_364);
  520. }
  521. /*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/;
  522. while (!((_i)<(0))) {
  523. _slash=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  524. /*IF*/if ((r3is_letter(_slash))||(r3is_digit(_slash))) {
  525. _i=(_i)-(1);
  526. }
  527. else {
  528. _i=-(1);
  529. }
  530. /*FI*/}
  531. /*IF*/if ((_i)==(0)) {
  532. r7extend(((T7*)R),'\57');
  533. }
  534.  else if (!((r7last(((T7*)R)))==(_slash))) {
  535. r7extend(((T7*)R),_slash);
  536. }
  537. /*FI*/oBC364small_eiffel_directory=R;}
  538. return oBC364small_eiffel_directory;}
  539. int fBC364make_suffix=0;
  540. T0*oBC364make_suffix=NULL;
  541. T0* r309make_suffix(T309* C){
  542. if (fBC364make_suffix==0){
  543. T0* R=NULL;
  544. fBC364make_suffix=1;
  545. /*IF*/if ((((T0*)ms14_364))==((void*)(r309system_name(C)))) {
  546. R=((T0*)ms33_364);
  547. }
  548.  else if ((((T0*)ms19_364))==((void*)(r309system_name(C)))) {
  549. R=((T0*)ms34_364);
  550. }
  551.  else if ((((T0*)ms18_364))==((void*)(r309system_name(C)))) {
  552. R=((T0*)ms35_364);
  553. }
  554.  else if ((((T0*)ms16_364))==((void*)(r309system_name(C)))) {
  555. R=((T0*)ms36_364);
  556. }
  557. else {
  558. R=((T0*)ms37_364);
  559. }
  560. /*FI*/oBC364make_suffix=R;}
  561. return oBC364make_suffix;}
  562. void r309automat(T309* C){
  563. T0* _a=NULL;
  564. int _arg=0;
  565. int _state=0;
  566. _arg=1;
  567. while (!((_arg)>(/*(IRF4.9argument_count*/(((T927*)((T927*)(r309command_arguments()))))->_upper/*8*//*)*/))) {
  568. _a=r309argument(_arg);
  569. /*IF*/if (r7is_equal(ms8_309,_a)) {
  570. /*[IRF3.3set_verbose*/((((T306*)(((T306*)(oBC364echo)))))->_verbose)=(1);
  571. /*]*/
  572. }
  573. /*FI*//*IF*/if (r7is_equal(ms9_309,_a)) {
  574. C->_c_code=1;
  575. }
  576. else {
  577. r7extend(((T7*)(oBC309tmp_string)),'\40');
  578. r7append(((T7*)(oBC309tmp_string)),_a);
  579. {int z1=_state;
  580.  
  581. if((0==z1)){
  582. /*IF*/if ((/*(IRF4.6item*/((((T7*)((T7*)_a)))->_storage/*0*/)[(1)-(1)]/*)*/)!=('\55')) {
  583. /*IF*/if (r7has_suffix(((T7*)_a),r309o_suffix(C))) {
  584. }
  585.  else if (r7has_suffix(((T7*)_a),((T0*)ms26_364))) {
  586. }
  587.  else if ((/*(IRF4.6item*/((((T7*)((T7*)_a)))->_storage/*0*/)[(1)-(1)]/*)*/)==('\53')) {
  588. }
  589.  else if (((((T309*)C))->_root/*0*/)==((void*)(NULL))) {
  590. C->_root=r309to_bcn(_a);
  591. r7to_lower(((T7*)((((T309*)C))->_root/*0*/)));
  592. _state=2;
  593. }
  594. /*FI*/}
  595.  else if (r7is_equal(ms10_309,_a)) {
  596. _state=1;
  597. }
  598.  else if (((/*(IRF4.6item*/((((T7*)((T7*)_a)))->_storage/*0*/)[(1)-(1)]/*)*/)==('\55'))&&((/*(IRF4.6item*/((((T7*)((T7*)_a)))->_storage/*0*/)[(2)-(1)]/*)*/)==('o'))) {
  599. }
  600.  else if (r7is_equal(ms11_309,_a)) {
  601. _state=1;
  602. }
  603.  else if (r7is_equal(ms12_309,_a)) {
  604. _state=1;
  605. }
  606. /*FI*/}
  607.  else 
  608. if((1==z1)){
  609. _state=0;
  610. }
  611.  else {_state=0;
  612. }}
  613. }
  614. /*FI*/_arg=(_arg)+(1);
  615. }
  616. }
  617. /*No:COMPILE.amiga_system*/
  618. void r309make(T309* C){
  619. T0* _str=NULL;
  620. int _time_out=0;
  621. /*IF*/if ((/*(IRF4.9argument_count*/(((T927*)((T927*)(r309command_arguments()))))->_upper/*8*//*)*/)<(1)) {
  622. r306w_put_string(((T0*)ms1_309));
  623. r309more_help(C,((T0*)ms82_470));
  624. exit(1);
  625. }
  626. /*FI*//*IF*/if ((((T0*)ms19_364))==((void*)(r309system_name(C)))) {
  627. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC309tmp_string)))))->_count)=(0);
  628. /*]*/
  629. }
  630. else {
  631. r7copy(((T7*)(oBC309tmp_string)),r309small_eiffel_directory(C));
  632. r309add_directory(C,oBC309tmp_string,((T0*)ms77_470));
  633. }
  634. /*FI*/r7append(((T7*)(oBC309tmp_string)),((T0*)ms58_473));
  635. r7append(((T7*)(oBC309tmp_string)),r309x_suffix(C));
  636. r309automat(C);
  637. /*IF*/if (((((T309*)C))->_root/*0*/)==((void*)(NULL))) {
  638. r306w_put_string(((T0*)ms2_309));
  639. exit(1);
  640. }
  641. /*FI*/_str=r7twin(((T7*)((((T309*)C))->_root/*0*/)));
  642. /*IF*/if ((((T0*)ms14_364))==((void*)(r309system_name(C)))) {
  643. while (!(((((T7*)((T7*)_str)))->_count/*4*/)<=(4))) {
  644. r7remove_last(((T7*)_str),1);
  645. }
  646. }
  647. /*FI*/r7append(((T7*)_str),r309make_suffix(C));
  648. r306file_removing(((T306*)(oBC364echo)),_str);
  649. r306call_system(((T306*)(oBC364echo)),oBC309tmp_string);
  650. _time_out=2000;
  651. while (!(((_time_out)==(0))||(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC309make_file))))->_path/*4*/)!=(NULL)/*)*/))) {
  652. r675connect_to(((T675*)(oBC309make_file)),_str);
  653. _time_out=(_time_out)-(1);
  654. }
  655. /*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC309make_file))))->_path/*4*/)!=(NULL)/*)*/)) {
  656. r306w_put_string(((T0*)ms135_470));
  657. r306w_put_string(_str);
  658. r306w_put_string(((T0*)ms3_309));
  659. exit(1);
  660. }
  661. /*FI*/r306put_string(((T306*)(oBC364echo)),((T0*)ms4_309));
  662. r306put_string(((T306*)(oBC364echo)),_str);
  663. r306put_string(((T306*)(oBC364echo)),((T0*)ms5_309));
  664. r675read_line(((T675*)(oBC309make_file)));
  665. while (!(((((T7*)((T7*)(oBC762last_string))))->_count/*4*/)==(0))) {
  666. r7copy(((T7*)(oBC309tmp_string)),oBC762last_string);
  667. r306call_system(((T306*)(oBC364echo)),oBC309tmp_string);
  668. r675read_line(((T675*)(oBC309make_file)));
  669. }
  670. r675disconnect(((T675*)(oBC309make_file)));
  671. /*IF*/if ((((T309*)C))->_c_code/*4*/) {
  672. r306put_string(((T306*)(oBC364echo)),((T0*)ms6_309));
  673. }
  674. else {
  675. /*IF*/if ((((T0*)ms19_364))==((void*)(r309system_name(C)))) {
  676. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC309tmp_string)))))->_count)=(0);
  677. /*]*/
  678. }
  679. else {
  680. r7copy(((T7*)(oBC309tmp_string)),r309small_eiffel_directory(C));
  681. r309add_directory(C,oBC309tmp_string,((T0*)ms77_470));
  682. }
  683. /*FI*/r7append(((T7*)(oBC309tmp_string)),((T0*)ms80_470));
  684. r7append(((T7*)(oBC309tmp_string)),r309x_suffix(C));
  685. r7extend(((T7*)(oBC309tmp_string)),'\40');
  686. /*IF*/if ((((T306*)((T306*)(oBC364echo))))->_verbose/*0*/) {
  687. r7append(((T7*)(oBC309tmp_string)),((T0*)ms7_309));
  688. }
  689. /*FI*/r7append(((T7*)(oBC309tmp_string)),(((T309*)C))->_root/*0*/);
  690. r306call_system(((T306*)(oBC364echo)),oBC309tmp_string);
  691. }
  692. /*FI*/r306put_string(((T306*)(oBC364echo)),((T0*)ms136_470));
  693. }
  694. /*No:COMPILE.help_suffix*/
  695. T0*oBC364help_file_name=NULL;
  696. /*No:COMPILE.fz_bin*/
  697. void r309add_directory(T309* C,T0* a1,T0* a2){
  698. /*IF*/if ((((T0*)ms17_364))==((void*)(r309system_name(C)))) {
  699. r7set_last(((T7*)a1),'\57');
  700. r7append(((T7*)a1),a2);
  701. r7set_last(((T7*)a1),'\57');
  702. }
  703.  else if ((((T0*)ms19_364))==((void*)(r309system_name(C)))) {
  704. r7set_last(((T7*)a1),'\134');
  705. r7append(((T7*)a1),a2);
  706. r7set_last(((T7*)a1),'\134');
  707. }
  708.  else if ((((T0*)ms15_364))==((void*)(r309system_name(C)))) {
  709. r7set_last(((T7*)a1),'\72');
  710. r7append(((T7*)a1),a2);
  711. r7set_last(((T7*)a1),'\72');
  712. }
  713.  else if ((((T0*)ms14_364))==((void*)(r309system_name(C)))) {
  714. r7set_last(((T7*)a1),'\134');
  715. r7append(((T7*)a1),a2);
  716. r7set_last(((T7*)a1),'\134');
  717. }
  718.  else if ((((T0*)ms16_364))==((void*)(r309system_name(C)))) {
  719. r7set_last(((T7*)a1),'\134');
  720. r7append(((T7*)a1),a2);
  721. r7set_last(((T7*)a1),'\134');
  722. }
  723.  else if ((((T0*)ms13_364))==((void*)(r309system_name(C)))) {
  724. r7set_last(((T7*)a1),'\57');
  725. r7append(((T7*)a1),a2);
  726. r7set_last(((T7*)a1),'\57');
  727. }
  728.  else if ((((T0*)ms18_364))==((void*)(r309system_name(C)))) {
  729. r7set_last(((T7*)a1),'\135');
  730. r7remove_last(((T7*)a1),1);
  731. r7set_last(((T7*)a1),'\56');
  732. r7append(((T7*)a1),a2);
  733. r7set_last(((T7*)a1),'\135');
  734. }
  735. /*FI*/}
  736. T670 oBC1file_tools=0;
  737. T0*oBC1std_output=NULL;
  738. T0*oBC309make_file=NULL;
  739. /*No:COMPILE.windows_system*/
  740. T0*oBC364echo=NULL;
  741. /*No:COMPILE.fz_01*/
  742. /*No:COMPILE.us_compile_to_c*/
  743. /*No:COMPILE.fz_02*/
  744. T0* r309get_environment_variable(T309* C,T0* a1){
  745. T0* R=NULL;
  746. void* _p=0;
  747. _p=r7to_external(((T7*)a1));
  748. R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
  749. return R;
  750. }
  751. void r309print_help(T309* C,T0* a1){
  752. r7copy(((T7*)(oBC364help_file_name)),r309small_eiffel_directory(C));
  753. r309add_directory(C,oBC364help_file_name,((T0*)ms2_364));
  754. r7append(((T7*)(oBC364help_file_name)),a1);
  755. /*IF*/if (!(r7has_suffix(((T7*)(oBC364help_file_name)),((T0*)ms39_364)))) {
  756. r7append(((T7*)(oBC364help_file_name)),((T0*)ms39_364));
  757. }
  758. /*FI*//*IF*/if (!(r309file_exists(oBC364help_file_name))) {
  759. r306w_put_string(((T0*)ms3_364));
  760. r306w_put_string(oBC364help_file_name);
  761. r306w_put_string(((T0*)ms242_470));
  762. exit(1);
  763. }
  764. /*FI*/r830append_file(((T830*)(oBC1std_output)),oBC364help_file_name);
  765. }
  766. int fBC1command_arguments=0;
  767. T0*oBC1command_arguments=NULL;
  768. T0* r309command_arguments(void){
  769. if (fBC1command_arguments==0){
  770. T0* R=NULL;
  771. T0* _arg=NULL;
  772. int _i=0;
  773. fBC1command_arguments=1;
  774. _i=se_argc;
  775. {T927*n=malloc(sizeof(*n));
  776. *n=M927;
  777. r927make(n,_i);
  778. R=(T0*)n;
  779. }
  780. while (!((_i)==(0))) {
  781. _i=(_i)-(1);
  782. _arg=((T0*)e2s(se_argv[_i]));
  783. /*[IRF3.5put*/((((T927*)((T927*)R)))->_storage/*0*/)[_i]=(_arg);
  784. /*]*/
  785. }
  786. oBC1command_arguments=R;}
  787. return oBC1command_arguments;}
  788. T0*oBC364system_list=NULL;
  789. T0*oBC1std_input=NULL;
  790. int fBC364system_name=0;
  791. T0*oBC364system_name=NULL;
  792. T0* r309system_name(T309* C){
  793. if (fBC364system_name==0){
  794. T0* R=NULL;
  795. int _i=0;
  796. fBC364system_name=1;
  797. r7copy(((T7*)(oBC364tmp_path)),r309small_eiffel_directory(C));
  798. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\57')) {
  799. r7set_last(((T7*)(oBC364tmp_path)),'\57');
  800. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  801. r7extend(((T7*)(oBC364tmp_path)),'\57');
  802. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  803. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  804. }
  805. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  806. r7copy(((T7*)(oBC364tmp_path)),r309small_eiffel_directory(C));
  807. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\134')) {
  808. r7set_last(((T7*)(oBC364tmp_path)),'\134');
  809. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  810. r7extend(((T7*)(oBC364tmp_path)),'\134');
  811. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  812. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  813. }
  814. /*FI*/}
  815. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  816. r7copy(((T7*)(oBC364tmp_path)),r309small_eiffel_directory(C));
  817. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\72')) {
  818. r7set_last(((T7*)(oBC364tmp_path)),'\72');
  819. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  820. r7extend(((T7*)(oBC364tmp_path)),'\72');
  821. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  822. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  823. }
  824. /*FI*/}
  825. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  826. r7copy(((T7*)(oBC364tmp_path)),r309small_eiffel_directory(C));
  827. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\135')) {
  828. r7set_last(((T7*)(oBC364tmp_path)),'\135');
  829. r7remove_last(((T7*)(oBC364tmp_path)),1);
  830. r7extend(((T7*)(oBC364tmp_path)),'\56');
  831. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  832. r7extend(((T7*)(oBC364tmp_path)),'\135');
  833. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  834. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  835. }
  836. /*FI*/}
  837. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  838. r7copy(((T7*)(oBC364tmp_path)),r309small_eiffel_directory(C));
  839. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  840. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  841. }
  842. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  843. r306w_put_string(((T0*)ms20_364));
  844. r306w_put_string(((T0*)ms127_470));
  845. r306w_put_string(((T0*)ms21_364));
  846. r306w_put_string(r309small_eiffel_directory(C));
  847. r306w_put_string(((T0*)ms242_470));
  848. exit(1);
  849. }
  850. /*FI*/r675read_line(((T675*)(oBC364tmp_file_read)));
  851. R=oBC762last_string;
  852. _i=r52index_of(((T52*)(oBC364system_list)),R);
  853. r675disconnect(((T675*)(oBC364tmp_file_read)));
  854. /*IF*/if ((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/)) {
  855. r306w_put_string(((T0*)ms22_364));
  856. r306w_put_string(oBC364tmp_path);
  857. r306w_put_string(((T0*)ms23_364));
  858. _i=1;
  859. while (!((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/))) {
  860. r306w_put_string(r52item(((T52*)(oBC364system_list)),_i));
  861. r306w_put_character('\n');
  862. _i=(_i)+(1);
  863. }
  864. }
  865. else {
  866. R=r52item(((T52*)(oBC364system_list)),_i);
  867. r306put_string(((T306*)(oBC364echo)),((T0*)ms24_364));
  868. r306put_string(((T306*)(oBC364echo)),R);
  869. r306put_string(((T306*)(oBC364echo)),((T0*)ms242_470));
  870. }
  871. /*FI*/oBC364system_name=R;}
  872. return oBC364system_name;}
  873. /*No:COMPILE.fz_b0*/
  874. T0*oBC364tmp_path=NULL;
  875. T0*oBC309tmp_string=NULL;
  876. /*No:COMPILE.c_code*/
  877. /*No:COMPILE.fz_se*/
  878. /*No:COMPILE.os2_system*/
  879. /*No:COMPILE.root*/
  880. int r309file_exists(T0* a1){
  881. int R=0;
  882. R=r670is_readable(a1);
  883. return R;
  884. }
  885. /*No:COMPILE.argument_count*/
  886. /*No:COMPILE.macintosh_system*/
  887. /*No:COMPILE.eiffel_suffix*/
  888. /*No:COMPILE.c_suffix*/
  889. T0* r309argument(int a1){
  890. T0* R=NULL;
  891. R=/*(IRF4.6item*/((((T927*)((T927*)(r309command_arguments()))))->_storage/*0*/)[a1]/*)*/;
  892. return R;
  893. }
  894. int fBC364o_suffix=0;
  895. T0*oBC364o_suffix=NULL;
  896. T0* r309o_suffix(T309* C){
  897. if (fBC364o_suffix==0){
  898. T0* R=NULL;
  899. T0* _sn=NULL;
  900. fBC364o_suffix=1;
  901. _sn=r309system_name(C);
  902. {T7*n=malloc(sizeof(*n));
  903. *n=M7;
  904. r7make(n,4);
  905. R=(T0*)n;
  906. }
  907. r7copy(((T7*)(oBC364tmp_path)),r309small_eiffel_directory(C));
  908. r309add_directory(C,oBC364tmp_path,((T0*)ms126_470));
  909. r7append(((T7*)(oBC364tmp_path)),((T0*)ms28_364));
  910. r7append(((T7*)(oBC364tmp_path)),_sn);
  911. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  912. r675read_line_in(((T675*)(oBC364tmp_file_read)),R);
  913. r675disconnect(((T675*)(oBC364tmp_file_read)));
  914. oBC364o_suffix=R;}
  915. return oBC364o_suffix;}
  916. /*No:STD_INPUT.push_back_flag*/
  917. /*No:STD_INPUT.make*/
  918. void r467read_character(T467* C){
  919. /*IF*/if ((((T467*)C))->_push_back_flag/*0*/) {
  920. C->_push_back_flag=0;
  921. }
  922. else {
  923. C->_memory=getc((FILE*)(stdin));
  924. }
  925. /*FI*/}
  926. /*No:STD_INPUT.last_character*/
  927. /*No:STD_INPUT.memory*/
  928. /*No:FILE_TOOLS.delete*/
  929. T0*oBC670std_fr1=NULL;
  930. int r670is_readable(T0* a1){
  931. int R=0;
  932. r675connect_to(((T675*)(oBC670std_fr1)),a1);
  933. R=/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC670std_fr1))))->_path/*4*/)!=(NULL)/*)*/;
  934. /*IF*/if (R) {
  935. r675disconnect(((T675*)(oBC670std_fr1)));
  936. }
  937. /*FI*/return R;
  938. }
  939. /*No:ECHO.make*/
  940. void r306system(T0* a1){
  941. void* _p=0;
  942. _p=r7to_external(((T7*)a1));
  943. system(((char*)_p));}
  944. /*No:ECHO.verbose*/
  945. T0*oBC1std_error=NULL;
  946. void r306file_removing(T306* C,T0* a1){
  947. /*IF*/if (r306file_exists(a1)) {
  948. r306put_string(C,((T0*)ms1_306));
  949. r306put_string(C,a1);
  950. r306put_string(C,((T0*)ms2_306));
  951. /*[IRF3.6remove_file*/{T0* b1=a1;
  952. /*[IRF3.6delete*/{T0* c1=b1;
  953. remove(((char*)r7to_external(((T7*)c1))));
  954. }/*]*/
  955. }/*]*/
  956. }
  957. /*FI*/}
  958. /*No:ECHO.remove_file*/
  959. void r306sfr_connect(T306* C,T0* a1,T0* a2){
  960. r306put_string(C,((T0*)ms3_306));
  961. r306put_string(C,a2);
  962. r306put_string(C,((T0*)ms4_306));
  963. r675connect_to(((T675*)a1),a2);
  964. }
  965. void r306put_string(T306* C,T0* a1){
  966. /*IF*/if ((((T306*)C))->_verbose/*0*/) {
  967. r830put_string(((T830*)(oBC1std_output)),a1);
  968. /*[IRF3.6flush*/{T830* C1=((T830*)(oBC1std_output));
  969. fflush(stdout);
  970. }/*]*/
  971. }
  972. /*FI*/}
  973. /*No:ECHO.fz_18*/
  974. void r306w_put_string(T0* a1){
  975. r441put_string(((T441*)(oBC1std_error)),a1);
  976. /*[IRF3.6flush*/{T441* C1=((T441*)(oBC1std_error));
  977. fflush(stderr);
  978. }/*]*/
  979. }
  980. int r306file_exists(T0* a1){
  981. int R=0;
  982. R=r670is_readable(a1);
  983. return R;
  984. }
  985. void r306call_system(T306* C,T0* a1){
  986. r306put_string(C,((T0*)ms5_306));
  987. r306put_string(C,a1);
  988. r306put_string(C,((T0*)ms152_470));
  989. r306system(a1);
  990. }
  991. void r306w_put_character(char a1){
  992. /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
  993. char b1=a1;
  994. putc(b1,((FILE*)(stderr)));
  995. }/*]*/
  996. /*[IRF3.6flush*/{T441* C1=((T441*)(oBC1std_error));
  997. fflush(stderr);
  998. }/*]*/
  999. }
  1000. /*No:ECHO.set_verbose*/
  1001. /*No:BOOLEAN_REF.item*/
  1002. int se_argc;
  1003. char**se_argv;
  1004. int main(int argc,char*argv[]){
  1005. se_initialize();
  1006. {
  1007. T309*n=malloc(sizeof(*n));
  1008. *n=M309;
  1009. se_argc=argc; se_argv=argv;
  1010. #ifdef SIGINT
  1011. signal(SIGINT,sigrsp);
  1012. #endif
  1013. #ifdef SIGQUIT
  1014. signal(SIGQUIT,sigrsp);
  1015. #endif
  1016. #ifdef SIGTERM
  1017. signal(SIGTERM,sigrsp);
  1018. #endif
  1019. #ifdef SIGBREAK
  1020. signal(SIGBREAK,sigrsp);
  1021. #endif
  1022. #ifdef SIGKILL
  1023. signal(SIGKILL,sigrsp);
  1024. #endif
  1025. se_msi1();
  1026. se_msi2();
  1027. se_msi3();
  1028. {T0* R=NULL;
  1029. {T830*n=malloc(1);
  1030. /*[IRF3.1make*//*]*/
  1031. R=(T0*)n;
  1032. }
  1033. oBC1std_output=R;}/*PCO*/
  1034. {int R=0;
  1035. oBC1file_tools=R;}/*PCO*/
  1036. {T0* R=NULL;
  1037. {T441*n=malloc(1);
  1038. /*[IRF3.1make*//*]*/
  1039. R=(T0*)n;
  1040. }
  1041. oBC1std_error=R;}/*PCO*/
  1042. {T0* R=NULL;
  1043. {T675*n=malloc(sizeof(*n));
  1044. *n=M675;
  1045. /*[IRF3.1make*//*]*/
  1046. R=(T0*)n;
  1047. }
  1048. oBC670std_fr1=R;}/*PCO*/
  1049. {T0* R=NULL;
  1050. {T7*n=malloc(sizeof(*n));
  1051. *n=M7;
  1052. r7make(n,256);
  1053. R=(T0*)n;
  1054. }
  1055. oBC309tmp_string=R;}/*PCO*/
  1056. {T0* R=NULL;
  1057. {T7*n=malloc(sizeof(*n));
  1058. *n=M7;
  1059. r7make(n,256);
  1060. R=(T0*)n;
  1061. }
  1062. oBC364tmp_path=R;}/*PCO*/
  1063. {T0* R=NULL;
  1064. {T467*n=malloc(sizeof(*n));
  1065. *n=M467;
  1066. /*[IRF3.1make*//*]*/
  1067. R=(T0*)n;
  1068. }
  1069. oBC1std_input=R;}/*PCO*/
  1070. {T0* R=NULL;
  1071. R=se_ma52(7,((T0*)ms13_364),((T0*)ms14_364),((T0*)ms15_364),((T0*)ms16_364),((T0*)ms17_364),((T0*)ms18_364),((T0*)ms19_364));
  1072. oBC364system_list=R;}/*PCO*/
  1073. {T0* R=NULL;
  1074. {T306*n=malloc(sizeof(*n));
  1075. *n=M306;
  1076. /*[IRF3.1make*//*]*/
  1077. R=(T0*)n;
  1078. }
  1079. oBC364echo=R;}/*PCO*/
  1080. {T0* R=NULL;
  1081. {T675*n=malloc(sizeof(*n));
  1082. *n=M675;
  1083. /*[IRF3.1make*//*]*/
  1084. R=(T0*)n;
  1085. }
  1086. oBC309make_file=R;}/*PCO*/
  1087. {T0* R=NULL;
  1088. {T7*n=malloc(sizeof(*n));
  1089. *n=M7;
  1090. r7make(n,256);
  1091. R=(T0*)n;
  1092. }
  1093. oBC364help_file_name=R;}/*PCO*/
  1094. {T0* R=NULL;
  1095. {T675*n=malloc(sizeof(*n));
  1096. *n=M675;
  1097. /*[IRF3.1make*//*]*/
  1098. R=(T0*)n;
  1099. }
  1100. oBC364tmp_file_read=R;}/*PCO*/
  1101. {T0* R=NULL;
  1102. {T675*n=malloc(sizeof(*n));
  1103. *n=M675;
  1104. /*[IRF3.1make*//*]*/
  1105. R=(T0*)n;
  1106. }
  1107. oBC817tmp_file_read=R;}/*PCO*/
  1108. {T0* R=NULL;
  1109. {T7*n=malloc(sizeof(*n));
  1110. *n=M7;
  1111. r7make(n,256);
  1112. R=(T0*)n;
  1113. }
  1114. oBC762last_string=R;}/*PCO*/
  1115. r309make(n);
  1116. exit(0);}}
  1117. T7*ms1_309;
  1118. T7*ms82_470;
  1119. T7*ms4_364;
  1120. T7*ms5_364;
  1121. T7*ms2_364;
  1122. T7*ms39_364;
  1123. T7*ms3_364;
  1124. T7*ms58_473;
  1125. T7*ms8_309;
  1126. T7*ms12_309;
  1127. T7*ms11_309;
  1128. T7*ms10_309;
  1129. T7*ms25_364;
  1130. T7*ms26_364;
  1131. T7*ms28_364;
  1132. T7*ms9_309;
  1133. T7*ms2_309;
  1134. T7*ms37_364;
  1135. T7*ms36_364;
  1136. T7*ms35_364;
  1137. T7*ms34_364;
  1138. T7*ms33_364;
  1139. T7*ms1_306;
  1140. T7*ms2_306;
  1141. T7*ms135_470;
  1142. T7*ms3_309;
  1143. T7*ms4_309;
  1144. T7*ms5_309;
  1145. T7*ms77_470;
  1146. T7*ms80_470;
  1147. T7*ms32_364;
  1148. T7*ms31_364;
  1149. T7*ms30_364;
  1150. T7*ms29_364;
  1151. T7*ms126_470;
  1152. T7*ms3_306;
  1153. T7*ms4_306;
  1154. T7*ms20_364;
  1155. T7*ms127_470;
  1156. T7*ms21_364;
  1157. T7*ms121_470;
  1158. T7*ms1_364;
  1159. T7*ms24_364;
  1160. T7*ms242_470;
  1161. T7*ms22_364;
  1162. T7*ms23_364;
  1163. T7*ms13_364;
  1164. T7*ms15_364;
  1165. T7*ms16_364;
  1166. T7*ms17_364;
  1167. T7*ms18_364;
  1168. T7*ms19_364;
  1169. T7*ms14_364;
  1170. T7*ms7_309;
  1171. T7*ms5_306;
  1172. T7*ms152_470;
  1173. T7*ms6_309;
  1174. T7*ms136_470;
  1175. void se_msi1(void){
  1176. ms1_309=se_ms(30,"Bad use of command `compile\'.\n");
  1177. ms82_470=se_ms(7,"compile");
  1178. ms4_364=se_ms(20,"Type help file for :");
  1179. ms5_364=se_ms(9," (y/n) ? ");
  1180. ms2_364=se_ms(3,"man");
  1181. ms39_364=se_ms(4,".txt");
  1182. ms3_364=se_ms(26,"Unable to find help file \"");
  1183. ms58_473=se_ms(12,"compile_to_c");
  1184. ms8_309=se_ms(8,"-verbose");
  1185. ms12_309=se_ms(6,"-cecil");
  1186. ms11_309=se_ms(3,"-cc");
  1187. ms10_309=se_ms(2,"-o");
  1188. ms25_364=se_ms(2,".e");
  1189. ms26_364=se_ms(2,".c");
  1190. ms28_364=se_ms(9,"o_suffix.");
  1191. ms9_309=se_ms(7,"-c_code");
  1192. ms2_309=se_ms(41,"Error : No <Root-Class> in command line.\n");
  1193. ms37_364=se_ms(5,".make");
  1194. ms36_364=se_ms(4,".CMD");
  1195. ms35_364=se_ms(4,".COM");
  1196. }
  1197. void se_msi2(void){
  1198. ms34_364=se_ms(4,".bat");
  1199. ms33_364=se_ms(4,".BAT");
  1200. ms1_306=se_ms(10,"Removing \"");
  1201. ms2_306=se_ms(2,"\"\n");
  1202. ms135_470=se_ms(6,"File \"");
  1203. ms3_309=se_ms(45,"\" not found. Error(s) during `compile_to_c\'.\n");
  1204. ms4_309=se_ms(19,"C compiling using \"");
  1205. ms5_309=se_ms(16,"\" command file.\n");
  1206. ms77_470=se_ms(3,"bin");
  1207. ms80_470=se_ms(5,"clean");
  1208. ms32_364=se_ms(0,"");
  1209. ms31_364=se_ms(4,".exe");
  1210. ms30_364=se_ms(4,".exe");
  1211. ms29_364=se_ms(4,".EXE");
  1212. ms126_470=se_ms(3,"sys");
  1213. ms3_306=se_ms(18,"Try to read file \"");
  1214. ms4_306=se_ms(3,"\".\n");
  1215. ms20_364=se_ms(21,"Unable to find file\n\"");
  1216. ms127_470=se_ms(9,"system.se");
  1217. ms21_364=se_ms(14,"\" using path \"");
  1218. }
  1219. void se_msi3(void){
  1220. ms121_470=se_ms(11,"SmallEiffel");
  1221. ms1_364=se_ms(31,"/usr/local/logiciel/SmallEiffel");
  1222. ms24_364=se_ms(11,"System is \"");
  1223. ms242_470=se_ms(3,"\".\n");
  1224. ms22_364=se_ms(29,"Unknown system name in file\n\"");
  1225. ms23_364=se_ms(36,"\".\nCurrently handled system names :\n");
  1226. ms13_364=se_ms(5,"Amiga");
  1227. ms15_364=se_ms(9,"Macintosh");
  1228. ms16_364=se_ms(3,"OS2");
  1229. ms17_364=se_ms(4,"UNIX");
  1230. ms18_364=se_ms(3,"VMS");
  1231. ms19_364=se_ms(7,"Windows");
  1232. ms14_364=se_ms(3,"DOS");
  1233. ms7_309=se_ms(9,"-verbose ");
  1234. ms5_306=se_ms(13,"System call \"");
  1235. ms152_470=se_ms(2,"\"\n");
  1236. ms6_309=se_ms(30,"C code not removed (-c_code).\n");
  1237. ms136_470=se_ms(6,"Done.\n");
  1238. }
  1239. T7*se_ms(int c,char*e){
  1240. T7*s=malloc(sizeof(T7));
  1241. s->_count=c;
  1242. s->_capacity=c+1;
  1243. s->_storage=malloc(c+1);
  1244. memcpy(s->_storage,e,c);
  1245. return s;}
  1246. T7*e2s(char*e){
  1247. return se_ms(strlen(e),e);}
  1248. char*s2e(T7*s){
  1249. char*e=malloc(1+s->_count);
  1250. memcpy(e,s->_storage,s->_count);
  1251. e[s->_count]='\0';
  1252. return e;}
  1253. void*se_ma52(int argc,...){
  1254. T52*m;
  1255. va_list pa;
  1256. T0**s;
  1257. m=malloc(sizeof(*m));
  1258. *m=M52;
  1259. if(argc){
  1260. s=malloc(argc*sizeof(*s));
  1261. m->_storage=s;
  1262. m->_capacity=argc;
  1263. m->_lower=1;
  1264. m->_upper=argc;
  1265. va_start(pa,argc);
  1266. while(argc--){
  1267. *(s++)=((void*)(va_arg(pa,char*)));
  1268. }
  1269. va_end(pa);
  1270. }
  1271. return m;}
  1272. void rsp(void){
  1273. printf("Eiffel program crash at run time.\n");
  1274. printf("No trace when using option \"-boost\"\n");}
  1275. void sigrsp(int sig){
  1276. printf("Received signal %d (man signal).\n",sig);
  1277. rsp();
  1278. exit(1);}
  1279. void se_initialize(void){
  1280. }
  1281.  
  1282.